package com.bookstore.back.config;

import com.bookstore.back.service.BestsellerScheduleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

/**
 * 定时任务配置类
 * 
 * @author 程序猿_Ti
 * @since 2025-07-22
 */
@Component
public class ScheduleConfig {

    @Autowired
    private BestsellerScheduleService bestsellerScheduleService;

    /**
     * 每天凌晨2点自动更新畅销榜单
     * cron表达式：秒 分 时 日 月 周
     */
    @Scheduled(cron = "0 0 2 * * ?")
    public void updateBestsellerRankings() {
        System.out.println("开始执行畅销榜单自动更新任务...");
        bestsellerScheduleService.generateBestsellerRankings();
        System.out.println("畅销榜单自动更新任务完成");
    }
    
    /**
     * 每小时执行一次畅销榜单更新（用于测试，生产环境可以注释掉）
     * 可以根据实际需求调整频率
     */
    // @Scheduled(fixedRate = 3600000) // 每小时执行一次
    public void updateBestsellerRankingsHourly() {
        System.out.println("开始执行畅销榜单小时更新任务...");
        bestsellerScheduleService.generateBestsellerRankings();
        System.out.println("畅销榜单小时更新任务完成");
    }
    
}
